/*
 *  AbstractLine.h
 *  SoundController0002
 *
 *  Created by jiro on 11/10/02.
 *  Copyright 2011 jiro music. All rights reserved.
 *
 */

#pragma once

#include "../HarmonicSystem/HarmonicSystem.h"
#include "AbstractNote.h"

class ::sc::hs::Howl;

namespace sc
{
namespace system0039
{

	class ConcreteLine;

	class AbstractLine
	{
	private:
	
		std::vector< AbstractNote > notes;

	public:

		void AddNote( const AbstractNote& note );

		int GetConcreteLineCount() const;

		void GetConcreteLines( std::vector< ConcreteLine >& lines ) const;

		void Clear();
		
		std::string ToString( int tabCount = 0 ) const;

	private:
	
		static void CoutIndexList( const std::vector< int >& indexList );
	};

}
}
